<!DOCTYPE html>
<html lang="zh">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>
    
    文件的打开与关闭 - DSRBLOG
    
  </title>
  

  
  
  <link href="atom.xml" rel="alternate" title="DSRBLOG" type="application/atom+xml">
  <link rel="stylesheet" href="asset/css/style.min.css">
  <link rel="stylesheet" href="asset/css/doc.css">
  <script src="asset/app.js"></script>


</head>

<body> <section class="ct-body">
	<div class="container">
		<div class="columns is-variable bd-klmn-columns is-4 is-centered">
			<div class="column is-four-fifths">
				<div class="post-body single-content">
					
					<h1 class="title">
						文件的打开与关闭
					</h1>


					<div class="media">
						
						
						<div class="media-content">
							<div class="content">
								<p>
									<span class="date">2022/02/09 03:34 上午</span>
									

									

									<br />
									<span class="tran-tags">Tags:</span>&nbsp;
									
									<a class="tag is-link is-light">#C语言</a>
									

								</p>
							</div>
						</div>

					</div>
				</div>
				<article class="markdown-body single-content">
					<h2><a id="%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%93%E5%BC%80" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>文件的打开</h2>
<h3><a id="%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>函数调用</h3>
<pre class="line-numbers"><code class="language-c">FILE *fp;
fp = fopen(文件名, 使用文件方式); //文件名可以是相对路径或绝对路径
</code></pre>
<ul>
<li>需要打开的文件名，也就是准备访问的文件的名字</li>
<li>使用文件的方式（&quot;读&quot;或者&quot;写&quot;等）</li>
<li>让哪一个指针变量指向被打开的文件</li>
</ul>
<h3><a id="%E6%96%87%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>文件使用方式</h3>
<table>
<thead>
<tr>
<th>ASCII文件</th>
<th>含义</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>&quot;r&quot;</td>
<td>（只读）为输入打开一个文本文件</td>
<td></td>
</tr>
<tr>
<td>&quot;w&quot;</td>
<td>（只写）为输出打开一个文本文件</td>
<td></td>
</tr>
<tr>
<td>&quot;a&quot;</td>
<td>（追加）向文本文件尾增加数据</td>
<td></td>
</tr>
<tr>
<td>&quot;r+&quot;</td>
<td>（读写）为读/写打开一个文本文件</td>
<td>如果文件存在，指针定位到文件开头进行读写</td>
</tr>
<tr>
<td>&quot;w+&quot;</td>
<td>（读写）为读/写建立一个新的文本文件</td>
<td>如果文件存在，<strong>清空后</strong>进行读写，如果文件不存在，建立新文件后进行读写</td>
</tr>
<tr>
<td>&quot;a+&quot;</td>
<td>（读写）为读/写打开一个文本文件</td>
<td>如果文件存在，指针定位到文件结尾进行追加操作</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>二进制文件</th>
<th>含义</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>&quot;rb&quot;</td>
<td>（只读）为输入打开一个二进制文件</td>
<td></td>
</tr>
<tr>
<td>&quot;wb&quot;</td>
<td>（只写）为输出打开一个二进制文件</td>
<td></td>
</tr>
<tr>
<td>&quot;ab&quot;</td>
<td>（追加）向二进制文件尾增加数据</td>
<td></td>
</tr>
<tr>
<td>&quot;rb+&quot;</td>
<td>（读写）为读/写打开一个二进制文件</td>
<td>如果文件存在，指针定位到文件开头进行读写</td>
</tr>
<tr>
<td>&quot;wb+&quot;</td>
<td>（读写）为读/写建立一个新的二进制文件</td>
<td>如果文件存在，<strong>清空后</strong>进行读写，如果文件不存在，建立新文件后进行读写</td>
</tr>
<tr>
<td>&quot;ab+&quot;</td>
<td>（读写）为读/写打开一个二进制文件</td>
<td>如果文件存在，指针定位到文件结尾进行追加操作</td>
</tr>
</tbody>
</table>
<h2><a id="%E6%96%87%E4%BB%B6%E7%9A%84%E5%85%B3%E9%97%AD" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>文件的关闭</h2>
<h3><a id="%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>函数调用</h3>
<pre class="line-numbers"><code class="language-c">fclose(文件指针);
</code></pre>
<h3><a id="%E5%87%BD%E6%95%B0%E5%8A%9F%E8%83%BD" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>函数功能</h3>
<p>使文件指针变量不指向该文件，也就是文件指针变量与文件“<strong>脱钩</strong>”，此后不能再通过该指针对原来与其相联系的文件进行读写操作</p>
<h3><a id="%E8%BF%94%E5%9B%9E%E5%80%BC" class="anchor" aria-hidden="true"><span class="octicon octicon-link"></span></a>返回值</h3>
<ul>
<li>关闭成功返回值为：<code>0</code></li>
<li>关闭失败返回值为：<code>EOF（即-1）</code></li>
</ul>

				</article>
				<div class="comments-wrap">
					<div class="share-comments">
						

						

						
					</div>
				</div><!-- end comments wrap -->
			</div>
		</div><!-- end columns -->
	</div><!-- end container -->
</section>  














<script src="asset/prism.js"></script>









</body>

</html>